Towards CNC Programming Using Haskell
نویسندگان
چکیده
Recent advances in Computerized Numeric Control (CNC) have allowed the manufacturing of products with high quality standards. Since CNC programs consist of a series of assembler-like instructions, several high-level languages, such as AutoLISP, APL or OMAC, have been proposed in order to raise the programming abstraction level. Unfortunately, the lack of a clean semantics in these languages prevents the development of formal tools for program analysis and manipulation. In this work, we propose the use of Haskell for CNC programming. Haskell is a modern pure functional language that includes advanced features such as lazy evaluation, higher order combinators, etc. The declarative nature of Haskell provides an excellent basis to develop program analysis and manipulation tools, and, most importantly, to formally prove their correctness. We thus propose the use of Haskell for high-level CNC programming, and show its practical applicability in this context.
منابع مشابه
Intel Concurrent Collections for Haskell
Intel Concurrent Collections (CnC) is a parallel programming model in which a network of steps (functions) communicate through message-passing as well as a limited form of shared memory. This paper describes a new implementation of CnC for Haskell. Compared to existing parallel programming models for Haskell, CnC occupies a useful point in the design space: pure and deterministic like Strategie...
متن کاملSelling Haskell for CS1
A prominent role for the functional paradigm is rare in computing programs. Introducing the idea is difficult, partly because so few programs use functional methods that qualified instructional staff, at both the faculty and graduate assistant level, are scarce. This paper outlines some ways to facilitate moving towards the use of the declarative paradigms early in the curriculum, presents argu...
متن کاملAxiomatic Constructor Classes in Isabelle/HOLCF
We have definitionally extended Isabelle/HOLCF to support axiomatic Haskell-style constructor classes. We have subsequently defined the functor and monad classes, together with their laws, and implemented state and resumption monad transformers as generic constructor class instances. This is a step towards our goal of giving modular denotational semantics for concurrent lazy functional programm...
متن کاملTowards a Verified Implementation of Software Transactional Memory
In recent years there has been much interest in the idea of concurrent programming using transactional memory, for example as provided in STM Haskell. While programmers are provided with a simple high-level model of transactions in terms of a stop-the-world semantics, the low-level implementation is rather more complex, using subtle optimisation techniques to execute multiple concurrent transac...
متن کاملA Review of Intelligent Cnc Controller Development Based on Step-nc
In the contemporary Computer Numeric Controlled (CNC) machine tools of Computer Aided Manufacturing (CAM) and CNC process conducted by a number of inter-related operations and parameters using G Codes and M codes set as RS274 or ISO 6983 standard. However, this programming language does not explicitly relate to each other to have control of arbitrary locations other than the motion of the block...
متن کامل